package com.platform.common.util.query.constant;

import java.util.HashMap;
import java.util.Map;

/**
 *
 * Description: 资源类型
 *
 */
public enum ResourceType {
	Null(0),

	/* 基础数据 */
	Base_RealName(1), // 实名基础数据
	Base_Terminal(2), // 终端基础数据
	Base_Route(3), // 热点基础数据
	Base_ISP(4), // ISP基础数据
	Base_IDC(5), // IDC基础数据
	Base_2G(6), // 2G基站基础数据
	Base_3G(7), // 3G基站基础数据
	Base_Cyber(8), // 虚拟身份基础数据
	Base_ICPUser(9), // ICP注册用户
	Base_Contact(10), // 通信录
	Base_Car(11), //车辆信息
	Base_IMSI(12), //IMSI信息
	Base_IMEI(13), //IMEI信息
	Base_Group(14), //群基础数据

	/* 日志数据 */
	Log_Heart(30), // 心跳日志
	Log_RealName(31), // 实名日志
	Log_Terminal(32), // 终端日志
	Log_Route(33), // 热点日志
	Log_ISP(34), // ISP日志
	Log_IDC(35), // IDC日志
	Log_2G(36), // 2G基站日志
	Log_3G(37), // 3G基站日志

	Log_Customer(40), // 顾客记录（终端上下线）日志
	Log_Cyber(41), // 虚拟身份日志
	Log_Chat(42), // 聊天内容还原日志
	Log_GroupChat(43), // 群聊天内容还原日志
	Log_BBS(44), // 社区（论坛）内容日志
	Log_Email(45), // 邮件还原日志
	Log_Blog(46), // 微博(博客)还原日志
	Log_SearchKeywords(47), // 搜索关键字还原日志
	Log_Access(48), // 访问记录日志  
	Log_Car(49), //车辆日志
	Log_IMSI(50), //IMSI日志
	Log_IMEI(51), //IMEI日志
	Log_ChatSession(52), //聊天会话日志
	Log_GroupChatSession(53), //群聊天会话日志
	Log_MachineOnline(97), //设备在线日志
	Log_Machine(98), // 设备二级索引

	Log_File(99), // 文件（附件）

	/* 索引数据 */
	Idx_Terminal(100), // 通过终端关联
	Idx_TerminalReRealName(100001), // 终端关联实名
	Idx_TerminalReRoute(100002), // 终端关联热点
	Idx_TerminalReCyber(100003), // 终端关联虚拟身份
	Idx_TerminalReISP(100004), // 终端关联ISP
	Idx_TerminalReIDC(100005), // 终端关联IDC
	Idx_TerminalReIMEI(100006),  //终端关联IMEI
	Idx_TerminalReIMSI(100007),  //终端关联IMSI
	Idx_TerminalReCar(100008),   //终端关联车牌

	Idx_Route(101), // 通过热点关联
	Idx_RouteReTerminal(101001), // 热点关联终端

	Idx_RealName(102), // 通过实名关联
	Idx_RealNameReTerminal(102001), // 实名关联终端
	Idx_RealNameReCyber(102002), // 实名关联虚拟身份
	Idx_RealNameReCustomer(102003), // 实名关联顾客记录
	Idx_RealNameReRealName(102004), // 实名关联实名
	Idx_RealNameReContact(102005), // 实名关联通信录
	Idx_RealNameReIMSI(102006),    //实名关联IMSI

	Idx_Cyber(103), // 通过虚拟身份关联
	Idx_CyberReRealName(103001), // 虚拟身份关联实名
	Idx_CyberReTerminal(103002), // 虚拟身份关联终端
	Idx_CyberReFriend(103003), // 虚拟身份关联好友
	Idx_CyberReContact(103004), // 虚拟身份关联通信录
	Idx_CyberReGroup(103005), //虚拟身份关联群
	Idx_FriendReCyber(103006), //好友关联虚拟身份

	// Idx_Customer(104), // 通过顾客记录关联
	// Idx_CustomerReCyber(104001), // 顾客关联虚拟身份
	// Idx_CustomerReRealName(104002), // 顾客关联实名
	// Idx_CustomerReChat(104003), // 顾客关联聊天内容
	// Idx_CustomerReGroupChat(104004), // 顾客关联群聊天内容
	// Idx_CustomerReBBS(104005), // 顾客关联社区论坛
	// Idx_CustomerReEmail(104006), // 顾客关联电子邮件
	// Idx_CustomerReBlog(104007), // 顾客关联微博
	// Idx_CustomerReSearchKeywords(104008), // 顾客关联搜索关键字
	// Idx_CustomerReAccess(104009), // 顾客关联访问记录

	// Idx_Name(105), // 通过姓名关联
	// Idx_NameReRealName(1050001), // 姓名关联实名

	// Idx_Unit(106), // 通过场所关联
	// Idx_UnitReCyber(106001), // 场所关联虚拟身份
	// Idx_UnitReRealName(106002), // 场所关联实名
	// Idx_UnitReTerminal(106003), // 场所关联终端
	// Idx_UnitReRoute(106004), // 场所关联热点
	// Idx_UnitReCustomer(106005), // 场所关联顾客记录

	// Idx_Machine(107), // 通过设备关联
	// Idx_MachineReCyber(107001), // 设备关联虚拟身份
	// Idx_MachineReRealName(107002), // 设备关联实名
	// Idx_MachineReTerminal(107003), // 设备关联终端
	// Idx_MachineReRoute(107004), // 设备关联热点
	// Idx_MachineReCustomer(107005), // 设备关联顾客记录

	// Idx_SSID(108), // 通过SSID关联
	// Idx_SSIDReRoute(108001), // SSID关联热点

	// Idx_Password(109), // 通过密码关联
	// Idx_PasswordReCyber(109001), // 密码关联虚拟身份
	// Idx_PasswordReRoute(109002), // 密码关联热点

	// Idx_MacReRoute(110001), // 热点MAC关联热点

	Idx_ISP(111), // 通过ISP关联
	Idx_ISPReTerminal(111001), // ISP关联终端

	Idx_IDC(112), // 通过IDC关联
	Idx_IDCReTerminal(112001), // IDC关联终端

	Idx_IMEIReTerminal(113001), // IMEI关联终端

	Idx_IMSI(114),                //通过IMSI关联
	Idx_IMSIReRealName(114001), // IMSI关联实名
	Idx_IMSIReTerminal(114002), //IMSI关联终端
	Idx_IMSIReCar(114003),       //IMSI关联车牌

	Idx_Car(115), //通过车牌关联
	Idx_CarReTerminal(115001), //车牌关联终端
	Idx_CarReIMSI(115002),  //车牌关联IMSI

	Idx_Group(116),             //通过群关联
	Idx_GroupReCyber(116001),    //通过群关联虚拟身份

	Alert(200000),       //基础-报警
	DataSource(200001),  //基础-数据源
	Machine(200002),     //基础-设备信息
	MachineModuleInfo(200003),    //基础-三合一模块信息
	MachineModuleStatus(200004),  //基础-三合一模块状态
	Manufacturer(200005),         //基础-厂商信息
	PersonInfo(200006),           //基础-重点人员
	RealtimeMonitor(200007),      //基础-实时监控/重点人员轨迹
	Unit(200008),                 //基础-场所信息
	Area(200009),                 //基础-地区信息

	Solr_Base(-1), Solr_Log(-2);

	private int value;

	private ResourceType(int value) {
		this.value = value;
	}

	public int getValue() {
		return value;
	}

	private static final Map<Integer, ResourceType> toEnumMap = new HashMap<Integer, ResourceType>();

	static {
		for (ResourceType type : values()) {
			toEnumMap.put(type.getValue(), type);
		}
	}

	public static ResourceType toEnum(int type) {
		if (toEnumMap.containsKey(type))
			return toEnumMap.get(type);
		return ResourceType.Null;
	}

	public enum TableType {
		NULL(""), BASE("BASE"), LOG("LOG"), IDX("IDX"), LOGIDX("LOGIDX"),ROUTE("Route"),PWV("PWV"),PWVIDX("PWVIDX");

		private String name;

		private TableType(String name) {
			this.name = name;
		}

		public String getTableName() {
			return name;
		}
	}
}